package com.zpark.security.distributed.order.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.provider.token.TokenStore;
import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
import org.springframework.security.oauth2.provider.token.store.JwtTokenStore;

/**
 * @PackageName: com.zpark.security.distributed.order.config
 * @ClassName: TokenConﬁg
 * @Description:
 * @author: RZS
 * @date: 2021/8/8  15:32
 */
@Configuration
public class TokenConfig {

    // 密钥
    private String SIGNING_KEY = "uaa123";

    // 定义令牌存储策略
    @Bean
    public TokenStore tokenStore(){
        // 使用内存方式，生成普通令牌
        //return new InMemoryTokenStore();

        // 使用jwt生成令牌
        return new JwtTokenStore(accessTokenConverter());
    }

    @Bean
    public JwtAccessTokenConverter accessTokenConverter() {
        JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
        converter.setSigningKey(SIGNING_KEY); //对称秘钥，资源服务器使用该秘钥来验证
        return converter;
    }
}
